<?php

namespace app\admin\model;


/**
 * 专题模型
 * Class Information
 * @package app\admin\model
 */
class InformationKeyword extends Base
{
    protected $autoWriteTimestamp = true;//开启自动添加时间戳
    protected $insert = ['create_id','create_nick_name'];//自动添加

    //添加人id
    protected function setCreateIdAttr()
    {
        return $this->admin["admin_id"];
    }

    //添加昵称
    protected function setCreateNickNameAttr()
    {
        return $this->admin["nick_name"];
    }

    //专题列表
    public function keywordList($keyword){
        return $this
            ->where(function ($q)use ($keyword){
                //模糊查找，标题、分类名称、资讯专题
                if(!empty($keyword)){
                    $q->whereOr("keyword_name","like","%".$keyword."%");
                }
            })
            ->where(config("TableDeleteField"), 0)//获取没有删除的
            ->page($this->after_page)
            ->limit($this->after_limit)
            ->orderRaw("if(is_display='1',1,0) DESC,update_time DESC,create_time DESC")//排序根据置顶和更新时间降序排列
            ->select();
    }

    //专题列表总数
    public function keywordListCount($keyword){
        return $this
            ->where(function ($q)use ($keyword){
                //模糊查找，标题、分类名称、资讯专题
                if(!empty($keyword)){
                    $q->whereOr("keyword_name","like","%".$keyword."%");
                }
            })
            ->where(config("TableDeleteField"), 0)//获取没有删除的
            ->count();
    }

    //验证权限
    public function checkSave($keyword_id){
        $is = false;
        if(!empty($keyword_id)) {
            if($this->admin["group_id"] != config("SuperAdminGroupId")) {//是否超级管理员
                if($this->where("keyword_id", $keyword_id)->where("create_id", $this->admin["admin_id"])->count()){//是否是自己的专题
                    $is = true;
                }else{
                    //验证是否是下级角色添加
                    $AdminGroup = new AdminGroup();
                    $subsetGroupId = $AdminGroup->getSubsetGroupId($this->admin["group_id"]);//获取下级角色
                    $create_id = $this->where("keyword_id", $keyword_id)->value("create_id");//获取添加专题的管理员ID
                    $Admin = new Admin();
                    $group_id = $Admin->where("admin_id",$create_id)->value("group_id");//获取添加人角色
                    if(in_array($group_id,$subsetGroupId)){//添加人角色是操作人子角色
                        $is = true;
                    }
                }
            }else{
                //超级管理员不用验证
                $is = true;
            }
        }else{
            //添加不用验证
            $is = true;
        }
        return $is;
    }

    //全部专题
    public function keywordAll(){
        return $this
            ->field("keyword_id,keyword_name")
            ->where(config("TableDeleteField"), 0)//获取没有删除的
            ->where("is_display", 1)//只获取显示的
            ->orderRaw("update_time DESC,create_time DESC")//排序根据置顶和更新时间降序排列
            ->select();
    }
}